package com.javase;



public class This01 {
    public static void main(String[] args) {
        This aThis = new This("jack");
        /**可以用this.hashCode();查看类似于地址的hash值*/
        System.out.println(aThis.hashCode());
        System.out.println(aThis.name);
        aThis.p1();
        This aThis1 = new This();
    }
}

/**
 * this只能在类内部使用，不能再类外使用
 */
class This{
    String name;
    /**this指向当前类,可以访问当前类的属性，方法，构造器，用于区分当前类的属性和局部变量
    访问成员方法时this.方法名(参数列表)=====*/
    public void p1(){
        System.out.println("p1方法========");
        this.p2();
    }
    public void p2(){
        System.out.println("p2方法========");
    }
    /*访问构造器方法this(参数列表)****构造器调用只能在构造器方法中调用*/
    public This(){
        /*如果需要调用构造器，this语句必须要放在构造器方法中的第一行代码*/
        this("mary");
        System.out.println("无参构造器被调用");
    }
    public This(String name){
        this.name = name;
        /**可以用this.hashCode();查看类似于地址的hash值
        this指向的地址和主类的aThis指向的地址是一样的，可以查看hash值查看*/
        System.out.println(this.hashCode());
        System.out.println("This(String name)构造器");
    }
}